#ifndef _KCKIT_H_

#define _KCKIT_H_

/*
作    者：	王清,张云腾 
创建时间:	2016-8-2
说    明：	kc工具集，一个kc的名称空间，包含关于字符串操作的函数声明
*/

/*

 王清	2016-8-3	新增函数声明 

 王清	2016-8-15	增加函数实现 

 王清	2017-4-20	设计KCStringkit类，聚合字符串操作的静态函数，构造函数私有化

*/

#include <string>

#include <vector>

//ubuntu test git
namespace kc{


	/*

	类名：KCStringKit

	作者：王清

	说明：	1. 该类是用于聚合字符串操作静态函数的类

			2. 理论上不允许构造一个对象，因此构造函数私有化

	*/
	class KCStringKit {
	public:
		static char kcFind(const std::string& str, unsigned i);
		static int kcFind(const std::string& str, char ch);
		static std::string kcFind(const std::string& str,unsigned begin,unsigned end);
		static void kcInsert(std::string& str,unsigned i,char ch);
		static void kcInsert(std::string& str,unsigned i,const std::string& sub);
		static void kcDelete(std::string& str,unsigned i);
		static void kcDelete(std::string& str,unsigned start,unsigned end);
		static void kcDelete(std::string& str,char ch);
		static void kcReplace(std::string& str,char re,char ch);
		static void kcReplace(std::string& str,char rStr,char dStr);
		static void kcAppend(std::string& str1,const std::string& str2);
		static std::vector<std::string> kcSplit(const std::string& str,char ch);
		static std::vector<std::string> kcSplit(const std::string& str,const std::string& spl);
		static void kcReverse(std::string& str);
		static unsigned kcGetLength(const std::string& str);
		static bool kcIsEmpty(const std::string& str);
		static void kcToUpperCase(std::string& str);
		static void kcToLowerCase(std::string& str);
		static int kcToInt(const std::string& str);
		static double kcToDouble(const std::string& str);
		static std::string kcFromInt(int num);
		static double kcToDouble(double d);
		static void kcTrim(std::string& str);
		static int kcSubStr(const std::string& str,const std::string& sub);


	private:
		KCStringKit() {}		//构造函数私有化，防止用户使用静态类的对象
	};


} 

#endif

